package com.jinzhi.jzweb.service.moduleConfig;

import com.baomidou.mybatisplus.plugins.Page;
import com.jinzhi.common.base.CoreService;
import com.jinzhi.common.utils.Result;
import com.jinzhi.jzweb.domain.StuSignUpComDO;
import com.jinzhi.jzweb.domain.moduleConfig.CareStuSignUpComRealityDO;
import com.jinzhi.jzweb.pojo.StuSignUpTeamVo;
import com.jinzhi.jzweb.pojo.StudentVO;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 
 * <pre>
 * 考生报名
 * </pre>
 * <small> 2023-05-05 08:52:02 | lance</small>
 */
public interface CareStuSignUpComRealityService extends CoreService<CareStuSignUpComRealityDO> {
    List<StuSignUpTeamVo> sumTeamStuSignExam(String name);

    List<StuSignUpTeamVo> sumOneStuSignExam(String name);

    Integer MaxNum(Long cbatchId);

    Page<CareStuSignUpComRealityDO> getStuGignUpCom(Integer curr, Integer pageSize);

    void stuGignUpCom(HttpServletResponse response);

    //生成二次加密好
    void touchSign();

    /**
     * 根据赛场导出选手以及加密信息
     * @param response
     * @param field
     * @throws Exception
     */
    void downloadStuDecrypt(HttpServletResponse response,String field)  throws Exception;

    /**
     * 根据赛场分页查询选手信息
     * @param stuSignUpComDTO
     * @return
     */
    Result list(CareStuSignUpComRealityDO stuSignUpComDTO);


    /**
     * 根据赛场，分页查询团队选手信息
     * @param stuSignUpComDTO
     * @return
     */
    Result teamList(CareStuSignUpComRealityDO stuSignUpComDTO) throws Exception;


    Result teamList(String field,int current,int size) throws Exception;

    /**
     * 根据赛场导出团队选手信息
     * @param response
     * @throws Exception
     */
    void downloadStuTeam(HttpServletResponse response,String field) throws Exception;

    /** 基本信息统计 */
    Result<?> statisticAnalysis();


    List<StudentVO> selStudentByunitName(String schoolName);

}
